package com.nenude.corejava.ch4;

public class Array2 {

	public static void main(String[] args) {
		
		//座位：班级座位，电影院座位
		//设计一个二维数组，保存班级同学的座位信息
		//二维数组的定义：
		//	String sits[][]=new String[][]; 错误；必须指定（行）第一维
		String sits[][]=new String[10][];
		//锯齿数据：java没有严格意义的二维数组，而是指代数组的数组
		//二维数组的第二维度可以是不相等的，理解为列数可以不相等；称为锯齿数组
		sits[0]=new String[6];//第一行有6列
		sits[1]=new String[3];//第二行有3列
		sits[2]=new String[9];//第三行有9列
		
		sits[0][0]="陆家学";
		sits[0][1]="陆家学1";
		sits[0][2]="陆家学2";
		sits[0][3]="陆家学3";
		
		sits[1][0]="陆家学4";
		sits[1][1]="陆家学5";
		sits[1][2]="陆家学6";
		
		//二维数组的遍历
		System.out.println(sits.length);//注意：使用组名。length获取的数组长度是第一维数组的长度，二维数组的第一维长度是相同的
		
		//for 循环遍历二维数组
		for(int r=0;r<sits.length;r++){//先遍历出第一维度（行）
			if(sits[r]!=null){
			for(int c=0;c<sits[r].length;c++){//再遍历出每一列的数据，注意：每一行的列数可能不一样
				System.out.print(sits[r][c]+"\t");
			}
			System.out.println();
		}else {
			System.out.println("第"+(r+1)+"行没有数据");
		}
		}
		
		//使用for each 循环遍历二维数组的方法
		for(String [] row :sits ){
			if(row!=null){
				for(String name:row){
					System.out.println(name+"\t");
					}
				System.out.println();
			}else {
				System.out.println("该行数据为空");
			}
			
			}
		
		}//main
		
		
		
		
		
		//二维数组的其它定义方法
		String[] sits2[]=new String[10][6];
		String sits3[][]=new String[10][6];
		String [][] sits4=new String[10][6];
		//String [][] sits0=new String[][]; //错误，必须指定行数（第一维度数）
		//	[][] String  sits4=new String[10][6]; 此法错误
		//String []sits6[]=new String[10][]{{"","",""},{"","",""},{"","",""}};//错误；直接赋值时，不能指定行和列
		
		String []sits5[]=new String[][]{{"","",""},{"","",""},{"","",""}};
		String []sits6[]={{"","",""},{"","",""},{"","",""}};
		
		


	    }


